package global

import (
	"fmt"
	"github.com/spf13/viper"
	"go.uber.org/zap"
	"pulsar-go/config"
)

var (
	Application config.ApplicationConfig
)

func init() {
	getYaml()
	getConfig()
}

func getConfig() {
	if err := viper.ReadInConfig(); err != nil {
		if _, ok := err.(viper.ConfigFileNotFoundError); ok {
			fmt.Println("没有找到配置文件")
		} else {
			fmt.Println("找到配置文件，但产生了另一个错误")
		}
		panic(err)
	}
	err := viper.Unmarshal(&Application)
	if err != nil {
		zap.S().Error(err.Error())
		panic(err)
	}
}

func getYaml() {
	viper.SetConfigName("application") // 文件名 (没有后缀的)
	viper.SetConfigType("yml")         // 文件类型（文件合理的后缀名）
	viper.AddConfigPath("./")          // 文件的目录，支持表达式，也可以增加多个
	viper.AddConfigPath("./config/")   // 文件的目录，支持表达式，也可以增加多个
	if err := viper.ReadInConfig(); err != nil {
		if _, ok := err.(viper.ConfigFileNotFoundError); ok {
			fmt.Println("没有找到配置文件")
		} else {
			fmt.Println("找到配置文件，但产生了另一个错误")
		}
		panic(err)
	}
}
